package com.socket;

import java.net.ServerSocket;
import java.util.ArrayList;
import java.util.List;
//这段代码会打印出所有被占用的端口号
public class UsedPortLister {
    public static List<Integer> getUsedPorts() {
        List<Integer> usedPorts = new ArrayList<>();
        for (int port = 1; port <= 65535; port++) {
            try (ServerSocket ignored = new ServerSocket(port)) {
                // 如果没有异常，说明端口是可用的，因此忽略。
            } catch (Exception e) {
                // 如果有异常，说明端口已被占用。
                usedPorts.add(port);
            }
        }
        return usedPorts;
    }

    public static void main(String[] args) {
        List<Integer> usedPorts = getUsedPorts();
        System.out.println("端口已被占用的有: " + usedPorts);
    }
}